package persistencia;

import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.util.ArrayList;
import java.util.List;
import modelo.Noticia;
import modelo.Tema;

public class TemaDAO {

    private final Connection con;
    private PreparedStatement pstm;
    private ResultSet rs;

    public TemaDAO() throws SQLException {
        DriverManager.registerDriver(new org.postgresql.Driver());
        con = DriverManager.getConnection("jdbc:postgressql://localhost/teste","postgres","postgres");

    }

    public void Salvar(Tema tema) throws SQLException {
        pstm = con.prepareStatement("insert into tema(nome, autor, cor_titulo, cor_fundo, ) values (?, ?, ?, ?)");

        pstm.setString(1, tema.getNome());
        pstm.setString(2, tema.getAutor());
        pstm.setString(3, tema.getCor_titulo());
        pstm.setString(4, tema.getCor_fundo());
        pstm.execute();
    }

    public void alterar(Tema tema) throws SQLException {
        pstm = con.prepareStatement("update tema set nome = ?, autor = ?, cor_titulo = ?, cor_fundo = ?, where id = ?");

        pstm.setString(1, tema.getNome());
        pstm.setString(2, tema.getAutor());
        pstm.setString(3, tema.getCor_titulo());
        pstm.setString(4, tema.getCor_fundo());
        pstm.setInt(5, tema.getId());
        pstm.execute();

    }

    public void Excluir(Tema tema) throws SQLException {
        pstm = con.prepareStatement("delete from tema id = ?");
        pstm.setInt(1, tema.getId());
        pstm.execute();
    }

    public Tema pesquisar(int id) throws SQLException {
        Tema tema = null;
        pstm = con.prepareStatement("select * from tema where id = ?");
        pstm.setInt(1, id);
        rs = pstm.executeQuery();
        if (rs.next()) {
            tema = new Tema();
            tema.setNome(rs.getString("nome"));
            tema.setAutor(rs.getString("autor"));
            tema.setCor_titulo(rs.getString("cor_titulo"));
            tema.setCor_fundo(rs.getString("cor_fundo"));
            tema.setId(rs.getInt("id"));

        }
        return tema;

    }

    public List<Tema> getTodosTema() throws SQLException {
        ArrayList<Tema> listtemas = new ArrayList();
        Tema tema = null;

        pstm = con.prepareStatement("select * from tema order by cor_titulo");

        rs = pstm.executeQuery();
        while (rs.next()) {
            tema = new Tema();
            tema.setNome(rs.getString("nome"));
            tema.setAutor(rs.getString("autor"));
            tema.setCor_titulo(rs.getString("cor_titulo"));
            tema.setCor_fundo(rs.getString("cor_fundo"));
            tema.setId(rs.getInt("id"));
            listtemas.add( tema);
        }

        return listtemas;
    }

}
